#     Copyright 2014 Netflix, Inc.
#
#     Licensed under the Apache License, Version 2.0 (the "License");
#     you may not use this file except in compliance with the License.
#     You may obtain a copy of the License at
#
#         http://www.apache.org/licenses/LICENSE-2.0
#
#     Unless required by applicable law or agreed to in writing, software
#     distributed under the License is distributed on an "AS IS" BASIS,
#     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#     See the License for the specific language governing permissions and
#     limitations under the License.



class SearchRunner
  include Sidekiq::Worker
  include Sidekiq::Status::Worker

  def perform(search_id)

    Rails.logger.warn "**Search id: #{search_id.inspect}"
    total 100
    at 0, "Preparing to sync"
    search_ids = Array(search_id.blank? ? Search.all.map{|s| s.id} : search_id)
    count = 0
    total search_ids.count
    search_ids.each do |id|
      count += 1
      begin
        @search = Search.find(id)
        at count, "Running: #{@search.name}"
        @search.perform_search
      rescue StandardError=>e
        Rails.logger.error "#{e.message}"
      end
    end
  end

end
